#include "CompetenceTiroir.h"

using namespace std;

const ScoreAdditionnel CompetenceTiroir::SANormal( Aucun );

CompetenceTiroir::CompetenceTiroir( const string& nom,
				    const unsigned& prix,
				    const unsigned& cat,
				    const unsigned& adresse,
				    const bool& exclu )
  : CompetenceClasseBase( "CompetenceTiroir", nom, "", prix ),
    SousCategorie( cat ), AdresseBase( adresse ), ChoixExclusif( exclu )
{}

CompetenceTiroir::CompetenceTiroir( const string& nom,
				    const string& alias,
				    const unsigned& prix,
				    const unsigned& cat,
				    const unsigned& adresse,
				    const bool& exclu )
  : CompetenceClasseBase( "CompetenceTiroir", nom, alias, prix ),
    SousCategorie( cat ), AdresseBase( adresse ), ChoixExclusif( exclu )
{}

CompetenceTiroir::CompetenceTiroir( const CompetenceTiroir& compTiroir )
  : CompetenceClasseBase( compTiroir ),
    SousCategorie( compTiroir.sousCategorie() ),
    AdresseBase( compTiroir.adresseBase() ),
    ChoixExclusif( compTiroir.choixExclusif() )
{}

CompetenceTiroir::~CompetenceTiroir()
{}

const ScoreAdditionnel& CompetenceTiroir::autreScore() const
{
  return SANormal;
}

const unsigned& CompetenceTiroir::sousCategorie() const
{
  return SousCategorie;
}

const unsigned& CompetenceTiroir::adresseBase() const
{
  return AdresseBase;
}

const bool& CompetenceTiroir::sousCategorieDefinie() const
{
  return BoolTrue;
}

const bool& CompetenceTiroir::choixExclusif() const
{
  return ChoixExclusif;
}

CompetenceClasseBase * CompetenceTiroir::creerCopie() const
{
  return new CompetenceTiroir( *this );
}

void CompetenceTiroir::afficherInstance( ostream& os ) const
{
  os << nom();
  if ( aliasDefini() )
    os << " (alias " << aliasNom() << ")";
  os << ", coût " << prix();
  os << " (autorise l'accès à des compétences supplémentaires)";
}

void CompetenceTiroir::afficherInstance( FlotMessage& flot ) const
{
  flot << nom();
  if ( aliasDefini() )
    flot << " (alias " << aliasNom() << ")";
  flot << ", coût " << prix();
  flot << " (autorise l'accès à des compétences supplémentaires)";
}
